/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package br.ufba.dcc.service;

import br.ufba.dcc.dao.DispositivoDAO;
import br.ufba.dcc.dao.UsuarioDAO;
import br.ufba.dcc.model.Dispositivo;
import br.ufba.dcc.model.Usuario;
import java.util.List;
import javax.jws.WebService;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.ejb.Stateless;
import javax.jws.WebResult;

/**
 *
 * @author charles
 */
@WebService(serviceName = "DispositivoServiceDAO")
@Stateless()
public class DispositivoServiceDAO {


        /**
     * This is a sample web service operation
     *
     * @return lista de usuarios
     */
    @WebMethod(operationName = "listDispositivo")
    @WebResult(name = "dispositivo")
    public List<Dispositivo> listDispositivo() {

        DispositivoDAO dao = new DispositivoDAO();
        List<Dispositivo> list = dao.listarDispositivos();

        return list;
    }
    
    @WebMethod(operationName = "AddDispositivo")
    public String AddDispositivo(@WebParam(name = "descricao") String descricaotxt ,@WebParam(name = "categoria") String categoriatxt ) {
        
//        	UsuarioDAO dao = new UsuarioDAO();
//                Usuario usuario = new Usuario();
//                usuario.setLogin(logintxt);
//                usuario.setNome(nametxt);
                
                DispositivoDAO dao = new DispositivoDAO();
                Dispositivo dispositivo = new Dispositivo();
                dispositivo.setDescricao(descricaotxt);
                dispositivo.setCategoria(categoriatxt);

		dao.cadastrarDispositivo(dispositivo);
                //dao.inserir(dispositivo);
        
        return "charles pergunte sobre esse retorno.";
    }
    
    @WebMethod(operationName = "AddRelacionamento")
    public Integer AddRelacionamento(@WebParam(name = "descricao") String descricaotxt ,@WebParam(name = "categoria") String categoriatxt,@WebParam(name = "usuario",mode = WebParam.Mode.IN)  br.ufba.dcc.model.Usuario usuario  ) {
        
//        	UsuarioDAO dao = new UsuarioDAO();
//                Usuario usuario = new Usuario();
//                usuario.setLogin(logintxt);
//                usuario.setNome(nametxt);
                
                DispositivoDAO dao = new DispositivoDAO();
                Dispositivo dispositivo = new Dispositivo();
                dispositivo.setDescricao(descricaotxt);
                dispositivo.setCategoria(categoriatxt);
                // buscar usuario do banco
                UsuarioDAO usuarioDAO = new UsuarioDAO();
               
                for (Usuario user :  usuarioDAO.listarUsuarios() ) {
                    if (user.getId() == usuario.getId()) {
                         System.out.println("Achei Usuario no banco!!!!!!!!!!");
                         dispositivo.setUsuario(user);
                         dao.inserirDispositivoComRelacionameto(dispositivo);
                         return 1;
                    }
                }
                System.out.println("Usuario não existe no banco!!!!!!!!!!");
        return 0;
    }

    /**
     * Operação de Web service
     */
    @WebMethod(operationName = "atualizarDispositivo")
    public Dispositivo atualizarDispositivo(@WebParam(name = "dispositivo") Dispositivo dispositivo) {

        DispositivoDAO dao = new DispositivoDAO();
        dao.atualizarDispositivo(dispositivo);
        return dispositivo;
    }

    /**
     * Operação de Web service
     */
    @WebMethod(operationName = "listarDispositivosById")
    public List<Dispositivo> listarDispositivosById(@WebParam(name = "usuario") Usuario usuario) {
        //TODO write your implementation code here:
        
        DispositivoDAO dao = new DispositivoDAO();
        List<Dispositivo> list = dao.ListarDispositivosById(usuario);
        
        return list;
    }


    
    
    
    
    
    
}
